﻿Public Class ClsTreeListRowOfTreeListProperties
    'represents TreeList row in Properties TreeList used for showing properties of any item

#Region "Attributes"
#Region "Private attributes"
    Private MsPropertyName As String 'property name
    Private MoPropertyValue As Object 'property value
    Private MiPropertyID As Integer 'property ID
    Private MiRowID As Integer 'row ID
    Private MiParentRowID As Integer 'parent row ID
#End Region
#End Region
#Region "Constructors"
    Public Sub New(ByVal IsPropertyName As String, ByVal IoPropertyValue As Object, ByVal IiPropertyID As Integer, ByVal IiRowID As Integer)
        Me.New(IsPropertyName, IoPropertyValue, IiPropertyID, IiRowID, -1)
    End Sub

    Public Sub New(ByVal IsPropertyName As String, ByVal IoPropertyValue As Object, ByVal IiPropertyID As Integer, ByVal IiRowID As Integer, ByVal IiParentRowID As Integer)
        MsPropertyName = IsPropertyName
        MoPropertyValue = IoPropertyValue
        MiPropertyID = IiPropertyID
        MiRowID = IiRowID
        MiParentRowID = IiParentRowID
    End Sub
#End Region

    'DONT CHANGE NAMES AND ORDER OF PROPERTIES!!! THESE NAMES OF PROPERTIES ARE USED IN TREELIST FOR PROPERTIES OF ITEMS IN DIAGRAM!!!
    'PROPERTIES WITH NAME "RowID" AND "ParentRowID" ARE UNIQUE IDENTIFIERS FOR TREELIST AND THESE COLUMNS ARE INVISIBLE IN TREELIST
    'SEE KeyFieldName and ParentFieldName PROPERTIES OF TREELIST
#Region "Properties"
#Region "Public properties"
    'DONT CHANGE NAMES AND ORDER OF PROPERTIES!!! THESE NAMES OF PROPERTIES ARE USED IN TREELIST FOR PROPERTIES OF ITEMS IN DIAGRAM!!!
    'PROPERTIES WITH NAME "RowID" AND "ParentRowID" ARE UNIQUE IDENTIFIERS FOR TREELIST AND THESE COLUMNS ARE INVISIBLE IN TREELIST
    'SEE KeyFieldName and ParentFieldName PROPERTIES OF TREELIST
    Public Property PropertyName() As String
        Get
            Return MsPropertyName
        End Get
        Set(ByVal IsValue As String)
            MsPropertyName = IsValue
        End Set
    End Property

    Public Property PropertyValue() As Object
        Get
            Return MoPropertyValue
        End Get
        Set(ByVal IoValue As Object)
            MoPropertyValue = IoValue
        End Set
    End Property

    Public ReadOnly Property PropertyID() As Integer
        Get
            Return MiPropertyID
        End Get
    End Property

    Public ReadOnly Property RowID() As Integer
        Get
            Return MiRowID
        End Get
    End Property

    Public ReadOnly Property ParentRowID() As Integer
        Get
            Return MiParentRowID
        End Get
    End Property
    'DONT CHANGE NAMES AND ORDER OF PROPERTIES!!! THESE NAMES OF PROPERTIES ARE USED IN TREELIST FOR PROPERTIES OF ITEMS IN DIAGRAM!!!
    'PROPERTIES WITH NAME "RowID" AND "ParentRowID" ARE UNIQUE IDENTIFIERS FOR TREELIST AND THESE COLUMNS ARE INVISIBLE IN TREELIST
    'SEE KeyFieldName and ParentFieldName PROPERTIES OF TREELIST
#End Region
#End Region
    'DONT CHANGE NAMES AND ORDER OF PROPERTIES!!! THESE NAMES OF PROPERTIES ARE USED IN TREELIST FOR PROPERTIES OF ITEMS IN DIAGRAM!!!
    'PROPERTIES WITH NAME "RowID" AND "ParentRowID" ARE UNIQUE IDENTIFIERS FOR TREELIST AND THESE COLUMNS ARE INVISIBLE IN TREELIST
    'SEE KeyFieldName and ParentFieldName PROPERTIES OF TREELIST

End Class
